using System;
using System.IO;

namespace Lombiq.HelpfulLibraries.Common.Utilities;

/// <summary>
/// 文件系统操作的一些快捷方式。
/// </summary>
public static class FileSystemHelper
{
    /// <summary>
    /// 从 <paramref name="pathComponents"/> 返回组合的文件系统路径，如果不存在则将其创建为目录。
    /// </summary>
    public static string EnsureDirectoryExists(params string[] pathComponents)
    {
        var path = Path.Combine(pathComponents);
        if (!Directory.Exists(path)) Directory.CreateDirectory(path);
        return path;
    }

    /// <summary>
    /// 如果 <paramref name="paths"/> 中的所有项都根据 <see cref="File.Exists"/> 存在，则返回 <see langword="true"/>。
    /// </summary>
    public static bool AllExist(params string[] paths) => paths.TrueForAll(File.Exists);
}
